package com.example.selenium.queue.rabbitmq.confirm;

import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;

/**
 * @Author : 刘思盖
 * @Date : 2021/9/23 18:23
 */
@Slf4j
@Component
public class ReturnCallbackService implements RabbitTemplate.ReturnCallback  {

    /**
     * 交换机 -> 队列
     * ReturnCallback消息没有正确到达队列时触发回调，如果正确到达队列不执行
     * 需要开启rabbitmq发送失败回退    publisher-returns    或rabbitTemplate.setMandatory(true);设置为true
     * @param message 消息体
     * @param replyCode 响应code
     * @param replyText 响应内容
     * @param exchange 交换机
     * @param routingKey 路由key
     */
    @Override
    public void returnedMessage(Message message, int replyCode, String replyText, String exchange, String routingKey) {
        log.info("returnedMessage ==、、、、、、、、、、、、、、、=> replyCode={} ,replyText={} ,exchange={} ,routingKey={}", replyCode, replyText, exchange, routingKey);
    }
}
